home *** CD-ROM | disk | FTP | other *** search
- // GETINFO SCRIPTING
- // Use only for sharereactor.ru releases
- (***************************************************
- * Movie information import script for: *
- * Sharereactor Russian, *
- * http://www.sharereactor.ru/ *
- * *
- * (c) 2003 By AIG *
- * corrected by KoSeA & Leonid_Z *
- * *
- * Update: 18.06.2004 *
- * - Fixed some false checkboxes *
- * *
- * Known issues: *
- * - time can't be added to catalog in some cases *
- * *
- * For use with Ant Movie Catalog 3.4.3 *
- * http://www.antp.be/software/moviecatalog *
- * *
- * The source code of the script can be used in *
- * another program only if full credits to *
- * script author and a link to Ant Movie Catalog *
- * website are given in the About box or in *
- * the documentation of the program *
- * *
- ***************************************************)
- program Sharereactorru;
- var
- MovieName: string;
-
- function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
- var
- i: Integer;
- begin
- result := -1;
- if StartAt < 0 then
- StartAt := 0;
- for i := StartAt to List.Count-1 do
- if Pos(Pattern, List.GetString(i)) <> 0 then
- begin
- result := i;
- Break;
- end;
- end;
-
- procedure AnalyzePage(Address: string);
- var
- Page: TStringList;
- LineNr: Integer;
- begin
- Page := TStringList.Create;
- Page.Text := GetPage(Address);
-
- PickTreeClear;
- LineNr := 0;
- LineNr := FindLine('╧ε Γα°σ∞≤ τα∩≡ε±≤ ε≥εß≡αφε', Page, LineNr);
- if LineNr > -1 then
- begin
- PickTreeAdd('╧ε Γα°σ∞≤ τα∩≡ε±≤ ε≥εß≡αφε', '');
- AddMoviesTitles(Page, LineNr);
- end;
-
- if PickTreeExec(Address) then
- begin
- Page.Free;
- Page := TStringList.Create;
- Page.Text := GetPage(Address);
- SetField(fieldURL, Address);
- AnalyzeMoviePage(Page)
- end
- Page.Free;
- end;
-
- procedure AnalyzeMoviePage(Page: TStringList);
- var
- Line, Value, value1, cuchr: string;
- LineNr, i: Integer;
- BeginPos, EndPos: Integer;
-
- begin
-
- // Original Title & TranslatedTitle & Year
- LineNr := FindLine(' ', Page, 0); //╧εΦ±Ω Φ∞σφΦ ⌠Φδⁿ∞α ╨╙╤
- Line := Page.GetString(LineNr);
-
- if LineNr > -1 then
- begin
- BeginPos := pos('<H1>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 4;
- EndPos := pos('</H1>', Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- HTMLRemoveTags(Value);
- HTMLDecode(Value);
- SetField(fieldTranslatedTitle, Value);
- end
-
- LineNr := FindLine(' ', Page, LineNr+1); //╧σ≡σΓσΣσφφεσ φατΓαφΦσ
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- HTMLDecode(Value);
- SetField(fieldOriginalTitle, Value);
- end
-
- LineNr := FindLine(' ', Page, LineNr+1); //├εΣ Γ√⌡εΣα
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- SetField(fieldYear, Value);
- end;
-
- //Category
- LineNr := FindLine(' ', Page, LineNr+1); //╞αφ≡
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('("', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 2;
- EndPos := pos('")', Line)-1;
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- HTMLDecode(Value);
- SetField(fieldCategory, Value);
- end;
-
- LineNr := FindLine(' ', Page, LineNr+1); //╨σµΦ±cσ≡
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- HTMLDecode(Value);
- SetField(fieldDirector,Value);
- end
-
- LineNr := FindLine(' ', Page, LineNr+1); //└Ω≥σ≡√
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- HTMLDecode(Value);
- HTMLRemoveTags(Value);
-
-
- SetField(fieldActors,value);
- end;
-
- LineNr := FindLine(' ', Page, LineNr+1); //╬∩Φ±αφΦσ
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- HTMLDecode(Value);
- SetField(fieldDescription, Value);
- end;
-
- LineNr := FindLine(' ', Page, LineNr+1); //╧≡εΣ■±±σ≡
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- HTMLDecode(Value);
- SetField(fieldProducer, Value);
- end;
-
- LineNr := FindLine(' ', Page, LineNr+1); //╧≡εΣεδµΦ≥σδⁿφε±≥ⁿ
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- HTMLDecode(Value);
- SetField(fieldLength, Value);
- end;
-
- LineNr := FindLine(' ', Page, LineNr+1); //▀τ√Ω
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- HTMLDecode(Value);
- SetField(fieldLanguages, Value);
- end;
-
- LineNr := FindLine(' ', Page, LineNr+1); //╩ε∞∞σφ≥α≡ΦΦ
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- HTMLDecode(Value);
- SetField(fieldComments, Value);
- end;
-
- LineNr := FindLine(' ', Page, LineNr+1); //─ε∩εδφΦ≥σδⁿφε
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
-
- LineNr := FindLine(' ', Page, LineNr+1); //╘ε≡∞α≥
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- LineNr := FindLine(' ', Page, LineNr+1);
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := Value+ ', ' + copy(Line, BeginPos, EndPos - BeginPos+1 );
- value:='';
- HTMLDecode(Value);
- SetField(fieldVideoFormat, Value);
- end;
- end;
- end;
-
- LineNr := FindLine(' ', Page, LineNr+1); //╩α≈σ±≥Γε Ωα≡≥ΦφΩΦ
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- value:='';
- HTMLDecode(Value);
- SetField(fieldResolution, Value);
- end;
-
-
-
- LineNr := FindLine(' ', Page, LineNr+1); //└≤ΣΦε
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- value:='';
- HTMLDecode(Value);
- SetField(fieldAudioFormat, Value);
- end;
-
- LineNr := FindLine(' ', Page, LineNr+1);
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('</B>', Line);
- if BeginPos > 0 then
- BeginPos := BeginPos + 5;
- EndPos := Length(Line);
- Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
- value:='';
- HTMLDecode(Value);
- SetField(fieldSize, Value);
- end;
-
- LineNr := FindLine('/covers/', Page, 0);
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('<I', Line);
-
- if BeginPos > 0 then
- BeginPos := BeginPos + 1;
- EndPos:=Length(Line);
- Line := copy(Line, BeginPos,EndPos-BeginPos);
- Value := copy(Line,10, pos('">', Line) - 10 );
- Value := 'http://sharereactor.ru'+Value;
- GetPicture(Value, False);
- end
- else
- begin
- LineNr := FindLine('amazon.com/', Page, 0);
- Line := Page.GetString(LineNr);
- if LineNr > -1 then
- begin
- BeginPos := pos('<I', Line);
-
- if BeginPos > 0 then
- BeginPos := BeginPos + 1;
- EndPos:=Length(Line);
- Line := copy(Line, BeginPos,EndPos-BeginPos);
- Value := copy(Line,10, pos('">', Line) - 10 );
- GetPicture(Value, False);
- end;
-
- end;
-
- DisplayResults;
- end;
-
-
- procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer);
- var
- Line: string;
- MovieTitle, MovieAddress: string;
- StartPos,EndPos,AddPos: Integer;
- begin
-
- LineNr := LineNr + 10;
- Line := Page.GetString(LineNr);
- StartPos := pos('<A', Line);
-
- repeat
-
-
- if StartPos > 0 then
- begin
- StartPos:=StartPos+8;
- EndPos := Length(Line);
- Line:=copy(Line,StartPos,EndPos - StartPos);
- MovieAddress := copy(Line, 2, pos('">', Line) -2 );
- StartPos := pos('">', Line) + 2;
- MovieTitle := copy(Line, StartPos, pos('</A>', Line) - StartPos);
- HTMLDecode(Movietitle);
- PickTreeAdd(MovieTitle, 'http://sharereactor.ru' + MovieAddress);
- end;
-
- StartPos := Length(Movietitle)+StartPos;
-
- StartPos := pos('<A', Line);
-
- until StartPos <= 0;
- end;
-
- begin
- if CheckVersion(3,4,0) then
- begin
- MovieName := GetField(fieldOriginalTitle);
- if MovieName = '' then
- MovieName := GetField(fieldTranslatedTitle);
- if Input('IMDb Import', 'Enter the title of the movie:', MovieName) then
- begin
- AnalyzePage('http://sharereactor.ru/cgi-bin/mzsearch.cgi?search='+UrlEncode(MovieName));
- end;
- end else
- ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.4.0)');
- end.
-